package com.sais.manage.boot.repair.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sais.manage.boot.repair.dto.RepairDTO;
import com.sais.manage.boot.repair.dto.RepairSearchDTO;
import com.sais.manage.boot.repair.entity.Repair;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 宿舍管理系统-维修申请 mapper 接口
 *
 * @author zwp
 * @date 2020/2/2
 **/
@Mapper
public interface RepairMapper extends BaseMapper<Repair> {

    /**
     * 添加维修申请 信息
     *
     * @param repair
     * @return
     */
    boolean createRepair(@Param("repair") Repair repair);

    /**
     * 根据 维修申请id 删除
     *
     * @param repairId
     * @return
     */
    boolean deleteRepair(@Param("repairId") String repairId);

    /**
     * 根据 维修申请id 查询信息
     *
     * @param repairId
     * @return
     */
    RepairDTO selectRepair(@Param("repairId") String repairId);

    /**
     * 分页 条件查询 维修申请 信息
     *
     * @param page
     * @param repairSearchDTO
     * @return
     */
    Page<RepairDTO> listRepair(@Param("page") Page<RepairDTO> page, @Param("repairSearchDTO") RepairSearchDTO repairSearchDTO);

    /**
     * 绑定 维修申请 和 物品
     *
     * @param repairId
     * @param propertyIds
     * @return
     */
    boolean bindRepairProperty(@Param("repairId") String repairId, @Param("propertyIds") List<String> propertyIds);

    /**
     * 根据房间id 查询 当日该宿舍楼有多少维修申请
     *
     * @param roomId
     * @param min
     * @param max
     * @return
     */
    int selectCountByRoomId(@Param("roomId") String roomId, @Param("min") LocalDateTime min, @Param("max") LocalDateTime max);

}
